1. Technical Field
The present invention relates generally to communication networks, and more particularly to an ARQ windows management in a network based on an ARQ protocol.
2. Related Art
A communication network comprising several stations (STA) and nodes is considered herein. The data generated by the applications running on the STAs are exchanged over data links in respective data flows. Each data flow corresponds to a given transmitter, a given receiver and a given application. One or more data flows can be transported over a given data link. A data link is established from one transmitter STA to a receiver STA, passing through intermediate nodes or not. Referring to a network protocol layering model according to the ISO (“International Standardization Organization”), the data link is ruled by a Link Layer (LL) protocol, which includes a Medium Access Control sub-layer (MAC). At the LL level, the data are transported in LL Protocol Data Units (LL-PDUs) which are inserted in, or extracted from, the physical medium by the MAC sub-layer. In the following, a transmitter STA and a receiver STA will be respectively referred to as a transmitter and a receiver.
In case of an error prone physical medium (e.g. radio, power line, etc . . . ), the LL layer includes an Error Control (EC) mechanism that is in charge of recovering the transmission errors experienced by the LL-PDUs. EC mechanisms are usually based on repetition of the lost or corrupted LL-PDUs as detected by the receiver. Protocols managing such repetitions schemes are also known as Automatic Repeat reQuest (ARQ) protocols. Generally, an ARQ instance is running both on the receiver and on the transmitter. A reverse data link is then provisioned so that the ARQ instance of the receiver can inform the ARQ instance of the transmitter about the reception status of the transmitted LL-PDUs. This ARQ protocol information is transported in specific signalling LL-PDUs also referred to as ARQ feedback messages or ARQ ACKnowledgement (ARQ-ACK) messages. In this type of protocols, the transmitter can send data to the receiver over a given data link only if an ARQ-ACK message relative to the previously sent LL-PDU has been correctly received. Consequently, when the transmitter is waiting for an ARQ-ACK message, the data transmission is blocked until the reception of the ARQ-ACK message. This blocking in a data transmission impacts the data link and then the transmission efficiency. In order to improve transmission efficiency by avoiding transmission blocking, a sliding window mechanism is generally introduced. The sliding window represents the number of LL-PDUs the transmitter can transmit without having received an ARQ-ACK message. The size of such a sliding window is defined by two boundaries, generally referred to as Bottom of Window (BoW) and Top of Window (ToW). Depending on the protocol, the size of the sliding window can be fixed, as for example with the HiperLAN/2 standard defined by the European Telecommunication Standard Institute (ETSI), or variable as for example with the Transmission Control Protocol (TCP). If the size of the sliding window is fixed, it is chosen at the time of the establishment of the data link. If the size of the sliding window is variable, it is advertised to the transmitter through the ARQ-ACK messages sent by the receiver. In this latter case, the reception of an ARQ-ACK updates the sliding window boundaries. During the data transmission, the transmitter controls the data flows over the corresponding data link based on these boundaries. Stated otherwise, the transmitter stops, resumes or continues LL-PDUs transmission by controlling the number of LL-PDUs sent without reception of ARQ-ACK. It results therefrom that the sliding window has a flow control effect that can disadvantageously affect the data link throughput even when no error occurs.
ARQ protocols rely on the identification of the PDUs that is common to the transmitter and the receiver and used by the protocol signalling so that the receiver can indicate in an ARQ-ACK message sent to the transmitter which PDUs are not correctly received. The data unit identification is typically a sequence number specific to the data units handled by the considered layer only.
On the other hand, the applications running on the STAs can have various Quality of Service (QoS) requirements. For example, these QoS requirements can be expressed in terms of bit rate (or bandwidth) or transmission delay constraints. The fulfilment of these constraints is possible if the data link offers the required bandwidth and/or transmission delay. In particular, bandwidth provisioning can be performed through resource reservation procedures. If successful, the resource reservation guaranties that the application data flow will be transported with the required bit rate. In the following section, for the sake of better understanding, only the bit rate QoS requirement is considered.
A single data link can be used to transport several application data flows with similar QoS requirements. Thus, the bit rate of a data link can vary in time, depending on the activity of the different application data flows.
This section exposes the basic principles and definitions for such ARQ protocols. As it has already been described, a sliding window is defined by its two boundaries and its size: respectively ToW, BoW and Window Size (WS). In the following, they are all expressed in the same unit, which can be a LL-PDU number, when LL-PDUs are of fixed size, as for example in HiperLAN/2, or a number of bytes as in TCP.
This unit is also used to define the sequence number space used to identify each LL-PDU. The sequence number range is determined so that no ambiguity arises in LL-PDU numbering and each LL-PDU can be uniquely identified. BoW and ToW are then sequence numbers of the LL-PDUs respectively located at the bottom and at the top of the sliding window. In the following for the sake of better understanding, an LL-PDU sequence number and the corresponding LL-PDU are considered to be equivalent.
BoW refers to the missing or corrupted LL-PDU of the lowest sequence number which is detected by the receiver, and ToW is determined from BoW by the following equation:ToW=BoW+WS−1
The transmitter can transmit or retransmit any LL-PDU comprised between BoW and ToW included.
BoW is updated by the receiver and advertised to the transmitter in the ARQ-ACK messages. When the size of the sliding window is variable, WS is also generally advertised in the ARQ-ACK messages, whereas when this size is fixed, WS is selected upon data link establishment.
Commonly, the Round Trip Time (RTT) of a data link is defined as the time elapsed between the emission of an LL-PDU and the reception of the corresponding ARQ-ACK message, i.e. an ARQ-ACK message covering the emitted LL-PDU, by the transmitter. RTT includes transmission delays due to the physical medium and processing in the various intermediate nodes, as well as processing in the transmitter and in the receiver.
This type of protocols is correctly adapted to data links where transmission errors occur. Conversely, a data link without any transmission errors may be impacted by such a protocol.
Actually, when no transmission error occurs, the maximum data link throughput, referred to as Bmax, the corresponding RTT and WS are linked by the following equation:Bmax=WS/RTT
This relation can be deduced from the following simplification assumptions.
All transmitted LL-PDUs have the same size and the ARQ-ACK message transmission rate is not limited on the reverse data link, from the receiver to the transmitter. Stated otherwise, the reverse data link is transparent to the ARQ-ACKs.
Assuming that the transmitter emits LL-PDUs at a constant throughput B, time gap between LL-PDUs can be referred to as T. The receiver emits one ARQ-ACK per received LL-PDU. If the first LL-PDU ever sent by the transmitter is considered as the BoW, the ARQ-ACK message acknowledging this LL-PDU is received after the RTT. The sliding window allows the transmitter to further transmit a given number n of other LL-PDUs until the first ARQ-ACK is received, n being an integer lower than WS. The following equation is deduced:n=B×RTT
The received ARQ-ACK message gives the transmitter the opportunity to send one more LL-PDU. Stated otherwise, the BoW and consequently the sliding window progress. The subsequent ARQ-ACK messages are received every T, thus allowing a new LL-PDU to be sent every T, and therefore the transmitter continues emitting LL-PDUs at a throughput which equals B.
Thus, in order to achieve the throughput B, a minimum value of WS has to be chosen so as to verify the following relation:WSmin=B×RTT
FIG. 1 illustrates a transmitter 11, a receiver 12 and a given data link 13. The data link 13 transports a data flow at a bit rate referred to as B. A corresponding reverse data link 14 allows transmission of ARQ-ACK messages from the receiver 12 to the transmitter 11. On the transmitter side, a queue of LL-PDUs pending for transmission, referenced 16, comprises the LL-PDUs from LL-PDU#11 to LL-PDU#14. The previous LL-PDUs, from LL-PDU#1 to LL-PDU#10, have already been sent. Further, it assumes that the LL-PDUs from LL-PDU#1 to LL-PDU#7 have been received on the receiver side and that they are stored in a memory buffer referenced 15 until the receiver has sent their corresponding ARQ-ACK messages. As the receiver spends some time in LL-PDU and ARQ-ACK message processing, it is considering in the example shown that only the ARQ-ACK messages corresponding to the LL-PDUs from LL-PDU#1 to LL-PDU#3 have been processed and sent over the reverse data link 14. An ARQ-ACK message, corresponding to a LL-PDU emitted at time t, is received at time t+RTT on the transmitter side. It results therefrom that the memory buffer 15 must be able to store the number of LL-PDUs received during a time of RTT at most. In the example illustrated in FIG. 1, when the data flow is transmitted at a given bit rate B, during the time of RTT, the receiver stores 7 LL-PDUs.
In case of an error-prone transmission, a great part of the RTT can be spent in LL-PDU and ARQ-ACK processing in the receiver. It results therefrom that the receiver is provided with enough memory to store the LL-PDU transmitted during that time. Indeed, LL-PDUs are retransmitted upon reception of ARQ-ACKs indicating incorrectly received LL-PDUs. Apparent RTT becomes longer due to the time elapsed to obtain the retransmitted LL-PDU status through further ARQ-ACK messages. It is then preferable not to block the transmission of the transmitter while waiting for the ARQ-ACK messages. It results therefrom that a larger sliding window is preferably provided to compensate as much as possible for the latency due to retransmissions. Consequently, a large space of memory resource shall be reserved for some data links which exhibit stringent QoS constraints so that these constraints can be guarantied even when these data links experience errors.
Regarding the previous description, either ARQ protocols are based on memory reservation and then a given throughput is guaranteed or they are based on a usage of memory without any reservation and then no throughput is guaranteed.
It results therefrom that it is difficult to apply an efficient dynamic ARQ windows management on different data links having different QoS and having different sliding window size requirements, particularly since these sliding window size requests are variable as a function of transmission errors notably.